home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 4 / The Arsenal Files 4 (Arsenal Computer).ISO / casm / au116-as.exe / UTIL / HANDREAD.CPP < prev    next >
C/C++ Source or Header  |  1994-05-31  |  1KB  |  63 lines

  1. #include "..\au.hpp"
  2.  
  3. /*░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░*/
  4. long HANDLE::read_long()
  5. {
  6.     unsigned char c1,c2,c3,c4;
  7.     c1 = read_char();
  8.     c2 = read_char();
  9.     c3 = read_char();
  10.     c4 = read_char();
  11.  
  12.     return    (unsigned long)c1 |
  13.            ((unsigned long)c2 << 8) |
  14.            ((unsigned long)c3 << 16) |
  15.            ((unsigned long)c4 << 24);
  16. }
  17. /*░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░*/
  18. int HANDLE::read_int()
  19. {
  20.     unsigned char c1,c2;
  21.     c1 = read_char();
  22.     c2 = read_char();
  23.  
  24.     return    (unsigned int)c1 |
  25.            ((unsigned int)c2 << 8);
  26. }
  27. /*░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░*/
  28. int HANDLE::read_string(char *string)
  29. {
  30.     int fn_len=0;
  31.     int ch;
  32.  
  33.     while ((ch = read_char())>0 && fn_len < 79)
  34.         string[fn_len++] = ch;
  35.     string[fn_len] = '\0';
  36.     return fn_len;
  37. }
  38. /*░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░*/
  39. int HANDLE::read(char *string, int n)
  40. {
  41.     int ch;
  42.     int bytes_read = 0;
  43.  
  44.     if (n == 0)
  45.         return 0;
  46.  
  47.     ch = read_char();
  48.     if (ch == EOF)
  49.         return EOF;
  50.  
  51.     do
  52.     {
  53.         if (ch == EOF)
  54.             break;
  55.         string[bytes_read++] = ch;
  56.         if (bytes_read >= n)
  57.             break;
  58.     } while ((ch = read_char()) >= 0);
  59.  
  60.     return bytes_read;
  61. }
  62.  
  63.